// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.241.1/containers/java-8
{
	"name": "Java 8",
    "image": "mcr.microsoft.com/devcontainers/java:1-8-bullseye",

	// Configure tool-specific properties.
	"customizations": {
		// Configure properties specific to VS Code.
		"vscode": {
			// Set *default* container specific settings.json values on container create.
			"settings": {
				"java.import.gradle.java.home": "/usr/local/sdkman/candidates/java/current",
				"java.configuration.runtimes": [{
					"default": true,
					"name": "JavaSE-1.8",
					"path": "/usr/local/sdkman/candidates/java/current"
				}]
			},

			// Add the IDs of extensions you want installed when the container is created.
			"extensions": [
				"vscjava.vscode-java-pack"
			]
		}
	},

	// Use 'forwardPorts' to make a list of ports inside the container available locally.
	// "forwardPorts": [],

	// Use 'postCreateCommand' to run commands after the container is created.
	// "postCreateCommand": "java -version",

	// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
	"remoteUser": "vscode",
	"features": {
        "ghcr.io/devcontainers/features/git:1": {},
        "ghcr.io/devcontainers/features/github-cli:1": {},
        "ghcr.io/meaningful-ooo/devcontainer-features/homebrew:2": {},
        "ghcr.io/devcontainers/features/java:1": {
            "version": "none",
            "installMaven": "false",
            "installGradle": "false"
        },
        "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
        "ghcr.io/devcontainers/features/node:1": {},
        "ghcr.io/devcontainers/features/sshd:1": {
            "version": "latest"
        }
	},
	"postStartCommand": ["./gradlew", "compileJava"]
}
